package com.estore.view;
import com.estore.model.Product;
import com.estore.service.ProductService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

public class ConsoleShop {
    private final ProductService productService = new ProductService();
    private final Map<String, Integer> shoppingCart = new HashMap<>();
    private final Scanner scanner = new Scanner(System.in);

    public void start() {
        while (true) {
            showMenu();
            int choice = scanner.nextInt();
            scanner.nextLine(); // 消费换行符
            switch (choice) {
                case 1:
                    browseProducts();
                    break;
                case 2:
                    addToCart();
                    break;
                case 3:
                    viewCart();
                    break;
                case 4:
                    productService.saveData();
                    System.out.println("感谢使用，再见！");
                    return;
                // 新增：隐藏管理员选项（99），执行数据备份
                case 99:
                    adminBackup();
                    break;
                default:
                    System.out.println("无效的选项，请重新输入！");
            }
        }
    }

    /**
     * 管理员备份功能：调用服务层的backupData方法
     */
    private void adminBackup() {
        System.out.println("\n--- 管理员数据备份 ---");
        // 简单的权限验证（可扩展为密码验证）
        System.out.print("请输入管理员密码：");
        String password = scanner.nextLine();
        if (!"admin123".equals(password)) { // 固定密码（实际项目需加密存储）
            System.out.println("密码错误，无备份权限！");
            return;
        }
        // 执行备份
        productService.backupData();
    }

    // 原有方法（showMenu、browseProducts、addToCart、viewCart）保持不变
    private void showMenu() {
        System.out.println("\n ====欢迎来到商城=== ");
        System.out.println("1. 浏览所有商品");
        System.out.println("2. 添加商品到购物车");
        System.out.println("3. 查看购物车");
        System.out.println("4. 退出");
        // 不显示隐藏选项，仅管理员知晓
        System.out.print("请输入您的选择: ");
    }

    // 其他方法（browseProducts、addToCart、viewCart）逻辑与任务一相同，此处省略

    public static void main(String[] args) {
        new ConsoleShop().start();
    }
}